<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xml:lang="zh" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Task Descriptor: Analyze Test Failure</title>
<meta name="uma.type" content="TaskDescriptor">
<meta name="uma.name" content="analyze_test_failure">
<meta name="uma.presentationName" content="Analyze Test Failure">
<meta name="uma.guid" content="_8jADYEohEdqrjq4i3fchvA">
<meta name="element_type" content="TaskDescriptor">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../css/default.css" type="text/css">
<script src="./../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ActivityTreeTable.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ProcessElementPage.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script src="./../../scripts/processElementData.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var defaultQueryStr = '?proc={35359DDF-6361-43E5-8B1B-18D204DA8CFF}&path={35359DDF-6361-43E5-8B1B-18D204DA8CFF},{93B7D625-C83A-4EFB-9772-B88F2EB02CE2},_8jADYEohEdqrjq4i3fchvA';
					var backPath = './../../';
					var imgPath = './../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo, defaultQueryStr, true, true, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top">
<div id="page-guid" value="_8jADYEohEdqrjq4i3fchvA"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Task Descriptor: Analyze Test Failure</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../images/taskdes_lg_dgm32.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">This task focuses on locating, isolating and diagnosing test failures and documenting them effectively.</td>
</tr>
<tr>
<td>Based on Method Task: <a href="./../../rup/tasks/analyze_test_failure_7E42EE55.html" guid="{EA0E3D2C-F87E-49CA-8832-F791886D5741}">Analyze Test Failure</a></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Roles</th><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Main:
								</span>
<ul>
<li>
<a href="./../../rup/capabilitypatterns/rup_tester_2A29A9A2.html" guid="_CWqAIRi2Edq_uI8xTPML6g">测试员</a>
</li>
</ul>
</td><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Additional:
								</span></td><td class="sectionTableCell"><span class="sectionTableCellHeading">Assisting:
								</span></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Inputs</th><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Mandatory:
								</span>
<ul>
<li>
<a href="./../../rup/capabilitypatterns/rup_test_log_23609DC8.html" guid="_CWqAIxi2Edq_uI8xTPML6g">测试日志</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_test_suite_18C2BDB8.html" guid="_CWqAIhi2Edq_uI8xTPML6g">测试套件</a>
</li>
</ul>
</td><td class="sectionTableCell" width="30%"><span class="sectionTableCellHeading">Optional:
								</span>
<ul>
<li>
<a href="./../../rup/capabilitypatterns/rup_test_strategy_A1E681F6.html" guid="_CWqAKhi2Edq_uI8xTPML6g">测试策略</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_test_script_B34D6DE0.html" guid="_CWqAKRi2Edq_uI8xTPML6g">测试脚本</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_test_data_DD549FD7.html" guid="_CWqAJhi2Edq_uI8xTPML6g">测试数据</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_test_case_E41DABB1.html" guid="_CWqAJBi2Edq_uI8xTPML6g">测试用例</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_tools_A8AF8DD0.html" guid="_CWqAKBi2Edq_uI8xTPML6g">工具</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_workload_analysis_model_EEBB8BC1.html" guid="_CWqAJRi2Edq_uI8xTPML6g">工作负载分析模型</a>
</li>
<li>
<a href="./../../rup/capabilitypatterns/rup_project_specific_guidelines_E7F27FE7.html" guid="_CWqAJxi2Edq_uI8xTPML6g">特定于项目的指南</a>
</li>
</ul>
</td><td class="sectionTableCell"><span class="sectionTableCellHeading">External:
								</span>
<ul>
<li>None</li>
</ul>
</td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row">Outputs</th><td class="sectionTableCell" colspan="3">
<ul>
<li>
<a href="./../../rup/capabilitypatterns/rup_change_request_AC846206.html" guid="_CWqAKxi2Edq_uI8xTPML6g">变更请求</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Steps</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="sectionTableCell">
<div class="stepHeading"> Examine the Test Logs </div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="ExamineTestLogs" name="ExamineTestLogs"></a>
<div align="left">
    <table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <td width="5%">
                <b>Purpose:</b>&nbsp;
            </td>
            <td width="95%">
                To collate and understand the output from the tests conducted.&nbsp;
            </td>
        </tr>
    </table><br />
</div>
<p>
    Start by gathering the Test Logs output during the implementation and execution of the tests. Relevant logs might come
    from many sources-they might be captured by the tools you use (both test execution and diagnostic tools), generated by
    custom-written routines your team has developed, output from the Target Test Items themselves, and recorded manually be
    the tester. Gather all of the available Test Log sources and examine their content. Check that all the scheduled
    testing executed to completion, and that all the tests were scheduled that should have been.
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> Capture Nontrivial Incident Data </div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="CaptureIncidentData" name="CaptureIncidentData"></a>
<div align="left">
    <table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <td width="5%">
                <b>Purpose:</b>&nbsp;
            </td>
            <td width="95%">
                To record the occurrence of any anomalous, nontrivial events for subsequent investigation.&nbsp;
            </td>
        </tr>
    </table><br />
</div>
<p>
    It's important to capture any anomalous occurrences-even if you can't reproduce or explain them now, subsequent
    incidents with similar symptoms will eventually provide enough information to help isolate what the fault is behind
    them.
</p>
<p>
    Log as much detail as you can now but indicate that the incident can't yet be resolved.
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> Identify Procedural Errors in the Test </div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="IdentifyProceduralErrors" name="IdentifyProceduralErrors"></a>
<div align="left">
    <table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <td width="5%">
                <b>Purpose:</b>&nbsp;
            </td>
            <td width="95%">
                To eliminate human error and other procedural and process errors in the test process from the incident
                log.&nbsp;
            </td>
        </tr>
    </table><br />
</div>
<p>
    It's pretty common that a number of failures will be as a result of errors introduced during the implementation of the
    test, or in the management of the test environment. Identify and correct these errors.
</p>
<p>
    If the test has completed abnormally, preventing other tests from being executed, you might need to recover the test
    close to the point of failure and continue execution of the remaining tests.
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> Locate and Isolate Failures </div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="LocateIsolateFailures" name="LocateIsolateFailures"></a>
<table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)" bordercolorlight="#808080" bordercolordark="#808080">
    <tr>
        <td width="5%">
            <b>Purpose:</b>&nbsp;
        </td>
        <td width="95%">
            To identify where the failure is occurring, eliminating Target Test Items from the failure analysis that are
            not the source of the failure.&nbsp;
        </td>
    </tr>
</table>
<div align="left">
    <br />
</div>
<p>
    The more diagnosis of the failure you perform, the more likelihood there will be that the fault will eventually be
    identified and understood.
</p>
<p>
    Try to isolate the failure by eliminating Target Test Items that are unlikely to be involved in the failure, and look
    for trends and characteristics in the remaining items, system status etc.
</p>
<p>
    Conduct an analysis of the failure by reproducing it under controlled conditions, if the failure cannot be investigated
    usefully without reproduction. Use diagnostic and debugging tools where helpful.
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> Diagnose Failure Symptoms and Characteristics </div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="DiagnoseFailure" name="DiagnoseFailure"></a>
<div align="left">
    <table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <td width="5%">
                <b>Purpose:</b>&nbsp;
            </td>
            <td width="95%">
                To capture a useful analysis of the failure to facilitate fault identification and resolution.&nbsp;
            </td>
        </tr>
    </table><br />
</div>
<p>
    Attempt to diagnose the underlying fault using your experience of similar incidents that have occurred.
</p>
<p>
    If required and available, enlist assistance form developers, taking advantage of the developers' internal knowledge of
    the software to improve the failure analysis.
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> Identify Candidate Solutions </div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="IdentifyCandidateSolutions" name="IdentifyCandidateSolutions"></a>
<div align="left">
    <table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <td width="5%">
                <b>Purpose:</b>&nbsp;
            </td>
            <td width="95%">
                To provide the person responsible for failure resolution with a better understanding or the nature and
                impact of the failure, and to assist the developer by providing possible ideas that can optionally be
                pursued.&nbsp;
            </td>
        </tr>
    </table><br />
</div>
<p>
    See <a class="elementLinkWithUserText" href="./../../rup/tasks/determine_test_results_630C9EC9.html#CreateMaintainCRs" guid="{74E51E86-ECAB-4A61-9A88-FD358EE6F2B1}">Task: Determine Test Results - Create and maintain Change Requests</a>
    for information on writing effective incident reports and Change Requests.
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> Document Your Findings Appropriately </div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="DocumentFindings" name="DocumentFindings"></a>
<div align="left">
    <table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <td width="5%">
                <b>Purpose:</b>&nbsp;
            </td>
            <td width="95%">
                To present your failure analysis in an appropriate manner for the person responsible for resolving the
                failure.&nbsp;
            </td>
        </tr>
    </table><br />
</div>
<p>
    See <a class="elementLinkWithUserText" href="./../../rup/tasks/determine_test_results_630C9EC9.html#CreateMaintainCRs" guid="{74E51E86-ECAB-4A61-9A88-FD358EE6F2B1}">Task: Determine Test Results - Create and maintain Change Requests</a>
    for information on writing effective incident reports and Change Requests.
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> Evaluate and Verify Your Results </div>
<div class="stepContent">
<table class="stepTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td><a id="EvaluateResults" name="EvaluateResults"></a>
<div align="left">
    <table border="1" width="100%" cellspacing="0" cellpadding="4" style="border: 1px solid rgb(128,128,128)"     bordercolorlight="#808080" bordercolordark="#808080">
        <tr>
            <td width="5%">
                <b>Purpose:</b>&nbsp;
            </td>
            <td width="95%">
                To verify that the task has been completed appropriately and that the resulting work products are
                acceptable.&nbsp;
            </td>
        </tr>
    </table><br />
</div>
<p>
    Now that you have completed the work, it is beneficial to verify that the work was of sufficient value, and that you
    did not simply consume vast quantities of paper. You should evaluate whether your work is of appropriate quality, and
    that it is complete enough to be useful to those team members who will make subsequent use of it as input to their
    work. Where possible, use the checklists provided in NUP to verify that quality and completeness are "good enough".
</p>
<p>
    Have the people performing the downstream tasks that rely on your work as input take part in reviewing your interim
    work. Do this while you still have time available to take action to address their concerns. You should also evaluate
    your work against the key input work products to make sure you have represented them accurately and sufficiently. It
    might be useful to have the author of the input work product review your work on this basis.
</p>
<p>
    Try to remember that that NUP is an iterative delivery process and that in many cases work products evolve over time.
    As such, it is not usually necessary-and is often counterproductive-to fully-form a work product that will only be
    partially used or will not be used at all in immediately subsequent work. This is because there is a high probability
    that the situation surrounding the work product will change-and the assumptions made when the work product was created
    proven incorrect-before the work product is used, resulting in wasted effort and costly rework. Also avoid the trap of
    spending too many cycles on presentation to the detriment of content value. In project environments where presentation
    has importance and economic value as a project deliverable, you might want to consider using an administrative resource
    to perform presentation tasks.
</p><br />
<br /></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Properties</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Multiple Occurrences" abbr="Multiple Occurrences">Multiple Occurrences</th><td class="sectionTableCell" align="left" headers="property_Multiple Occurrences"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Event Driven" abbr="Event Driven">Event Driven</th><td class="sectionTableCell" align="left" headers="property_Event Driven"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Ongoing" abbr="Ongoing">Ongoing</th><td class="sectionTableCell" align="left" headers="property_Ongoing"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Optional" abbr="Optional">Optional</th><td class="sectionTableCell" align="left" headers="property_Optional"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Planned" abbr="Planned">Planned</th><td class="sectionTableCell" align="left" headers="property_Planned"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th class="sectionTableHeading" scope="row" id="property_Repeatable" abbr="Repeatable">Repeatable</th><td class="sectionTableCell" align="left" headers="property_Repeatable"><img width="20" height="15" alt="" title="" src="./../../images/indent.gif"></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright">Copyright &copy; 2008 版权所有 东软集团股份有限公司&nbsp; 联系邮箱:<a href="mailto:tcoe@neusoft.com">tcoe@neusoft.com</a></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script language="JavaScript" type="text/javascript">
					contentPage.onload();
					contentPage.processPage.fixDescriptorLinks();
				</script>
</html>
